#include <REGX52.H>
//#include "LCD1602.h"
#include "Delay.h"
#include "OneWire.h"
#include "DS18B20.h"
#include "Nixie.h"
//char ack;
float T;	//全局变量
int Tshow,ts1,ts2;
unsigned int uc_flag,flag;
void Temp_Show(void);

void Timer0Init(void)		//1毫秒@11.0592MHz
{
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x66;		//设置定时初始值
	TH0 = 0xFC;		//设置定时初始值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
	ET0 = 1;
	EA = 1;
}


void main()
{
//	LCD_Init();
//	LCD_ShowString(1,1,"Temperature:");
//	ack = OneWire_Init();
//	LCD_ShowNum(2,1,ack,3);
	
//	LCD_ShowChar(2,9,0xDF);
//	LCD_ShowChar(2,10,'C');
	Timer0Init();
	while(1)
	{
		
		
//		DS18B20_ConvertT();
//		T = DS18B20_ReadT();
		Temp_Show();
		if(T < 0)
		{
			
    T=-T;
		}
		Tshow = T;
		ts1 = Tshow/10;
		ts2 = Tshow%10;

//		if(T<0)
	//	{
//			LCD_ShowChar(2,1,'-');//显示个负号
//			T=-T;	//转化成正数
//		}
//		else {LCD_ShowChar(2,1,'+');}
		Nixie(1,ts1);
		Nixie(2,ts2);
//		LCD_ShowNum(2,2,T,3);//整数部分
//		LCD_ShowChar(2,5,'.');
//		LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,3);
		//乘一万，小数部分移动到整数部分，再取余，再强制类型转换unsigned long
		
	}
	
}

void Timer1_ISR(void) interrupt 1
{
	TL0 = 0x66;		//设置定时初始值
	TH0 = 0xFC;		//设置定时初始值
	
	if(++uc_flag == 500)
	{
		uc_flag = 0;
		flag = 1;
	}
}

void Temp_Show(void)
{
	if(flag){
		
	 flag = 0;
	 T = DS18B20_ReadT();
	}
}